<template>
    <div v-html="formattedText"></div>
</template>
<script setup>
import {ref, computed} from "vue";
import {marked} from "marked"; // Markdown 解析库

const markdownText = ref("data:**关于2024年云南网发稿量同比减少的分析通告**  \n" +
    "\n" +
    "根据云南网2023年及2024年新闻宣传工作总结数据，2024年全平台累计发稿量约**37万篇**，较2023年的**58.5万篇**同比下降约36.7%^[1][4]^。经分析，主要原因如下：  \n" +
    "\n" +
    "### 一、**战略调整：从“量”向“质”转型**  \n" +
    "2024年云南网深化融合转型，明确“**质量优先**”策略，减少低效内容生产，聚焦**精品化、轻量化、垂直化**内容建设^[1]^。例如：  \n" +
    "1. **爆款内容占比提升**：单篇阅读量100万+稿件达195篇（2023年为251篇），但500万+、1000万+稿件数量显著增加^[1]^。  \n" +
    "2. **品牌栏目迭代**：如《微光志》《探滇TIME》等栏目强化深度叙事，单位内容生产周期延长^[1]^"); // 存储 Markdown 内容

const formattedText = computed(() => {
    return marked(markdownText.value); // 确保转换 Markdown
});

async function fetchMarkdownResponse() {
    const response = await fetch("http://127.0.0.1:8000/api/chatai/respond2", {
        method: 'POST', // 请求方法
        headers: { // 请求头
            "Content-type":"application/json; charset=utf-8",
            "Accept": "text/event-stream",
            'storeuuid' :'demo1'
        },
        body: JSON.stringify({ // 请求头{server: 1,
            sentintro: {
                "question": "1111111",
                "chatkey": "LP6e7tr2o0",
                "storeuuid": "demo1",
                "appid": 4,
                "num": 0,
                "visitor": "4fed7846-bf54-491a-946a-d805d0f38f89",
                "file_ids": "",
                "faq_num": 8
            },
            ba_token: '',
            storeuuid: 'demo1'
        })
    });
    if (!response.body) return;
    const reader = response.body.getReader();
    const decoder = new TextDecoder("utf-8");
    let buffer = "";

    while (true) {
        const {done, value} = await reader.read();
        if (done) break;

        buffer += decoder.decode(value, {stream: true});
        const lines = buffer.split("\n");
        buffer = lines.pop(); // 可能未完成，保留
        console.log(lines,'lines')

        let showText=''
        for (let line of lines) {
            // console.log(line.startsWith("data: "),'开始')
            // if (line.startsWith("data: ")) {
                const message =line;//JSON.parse();
            for (let i = 0; i < message.length; i++) {
                showText += message[i];
                await Cmpsleep(400);
            }
            //}
        }
        markdownText.value +=showText; // 逐步拼接 Markdown
    }
}
const  Cmpsleep=(ms)=> {
    return new Promise(resolve => setTimeout(resolve, ms));
}

fetchMarkdownResponse();
</script>
